﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BE;
using BL;


public partial class ReporteGuardia : BasePage
{
    #region Eventos

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            {
                CargarDatos();
                txtFlag.Text = "1";
            }

    }
    #endregion

    #region Metodos

    private void CargarDatos()
    {
        CargarPozos();
        CargarActividades();
        CargarMateriales();
        CargarRepuestos();
        CargarEmpleados();
    }

    private void CargarPozos()
    {
        try
        {
            bePozo oBE = new bePozo() ; 
            DataTable ds = blPozo.Obtener(oBE);  
            DDLPozo.DataSource = ds;
            DDLPozo.DataTextField = "Ubicacion";
            DDLPozo.DataValueField = "id_Pozo";
            DDLPozo.DataBind();
            DDLPozo.Items.Insert(0, new ListItem("Seleccione Pozo", String.Empty));
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessage();
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessage();
        }
    }
    private void CargarActividades()
    {
        try
        {
            beActividad oBE = new beActividad();
            DataTable ds = blActividad.Obtener(oBE);
            DDLActividad.DataSource = ds;
            DDLActividad.DataTextField = "Descripcion";
            DDLActividad.DataValueField = "id_Actividad";
            DDLActividad.DataBind();
            DDLActividad.Items.Insert(0, new ListItem("Seleccione Actividad", String.Empty));
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessage();
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessage();
        }
    }
    private void CargarMateriales()
    {
        try
        {
            beMaterial oBE = new beMaterial ();
            DataTable ds = blMaterial.ObtenerMateriales(oBE);
            DDLMateriales.DataSource = ds;
            DDLMateriales.DataTextField = "Nombre";
            DDLMateriales.DataValueField = "id_Item";
            DDLMateriales.DataBind();
            DDLMateriales.Items.Insert(0, new ListItem("Seleccione Material", String.Empty));
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessage();
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessage();
        }
    }
    private void CargarRepuestos()
    {
        try
        {
            beRepuesto  oBE = new beRepuesto();
            DataTable ds = blRepuesto.ObtenerRepuestos(oBE);
            DDLRepuestos.DataSource = ds;
            DDLRepuestos.DataTextField = "Nombre";
            DDLRepuestos.DataValueField = "id_Item";
            DDLRepuestos.DataBind();
            DDLRepuestos.Items.Insert(0, new ListItem("Seleccione Repuesto", String.Empty));
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessage();
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessage();
        }
    }
    private void CargarEmpleados()
        
    {
        try
        {
            beEmpleado   oBE = new beEmpleado ();
            DataTable ds = blEmpleado.Obtener(oBE);
            DDLEmpleados.DataSource = ds;
            DDLEmpleados.DataTextField = "Nombres" ;
            DDLEmpleados.DataValueField = "id_Empleado";
            DDLEmpleados.DataBind();
            DDLEmpleados.Items.Insert(0, new ListItem("Seleccione Empleado", String.Empty));
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessage();
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessage();
        }
    }
    private void CargarGrillaActividades()
    {
        try
        {
            DataTable dt;
            beDetalleActividad  oBE = new beDetalleActividad();
            if (txtIDReporteGuardia.Text != "")
            {
                oBE.IDReporteGuardia = Convert.ToInt64(Convert.ToString(txtIDReporteGuardia.Text));

                dt = blDetalleActividad.Obtener(oBE);

                Session["DATA"] = dt;
                gvActividad.DataSource = dt;
                gvActividad.DataBind();
            }

        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessageInAjax(upl);
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }
    private void CargarGrillaMateriales()
    {
        try
        {
            DataTable dt;
            beDetalleMaterial oBE = new beDetalleMaterial();
            if (txtIDReporteGuardia.Text != "")
            {
                oBE.IDReporteGuardia = Convert.ToInt64(Convert.ToString(txtIDReporteGuardia.Text));

                dt = blDetalleMateriales.Obtener(oBE);

                Session["DATA"] = dt;
                gvMateriales.DataSource = dt;
                gvMateriales.DataBind();
            }

        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessageInAjax(upl);
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }
    private void CargarGrillaRepuestos()
    {
        try
        {
            DataTable dt;
            beDetalleRepuestos oBE = new beDetalleRepuestos();
            if (txtIDReporteGuardia.Text != "")
            {
                oBE.IDReporteGuardia = Convert.ToInt64(Convert.ToString(txtIDReporteGuardia.Text));

                dt = blDetalleRepuesto.Obtener(oBE);

                Session["DATA"] = dt;
                gvRepuestos.DataSource = dt;
                gvRepuestos.DataBind();
            }

        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessageInAjax(upl);
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }
    private void CargarGrillaTrabajadores()
    {
        try
        {
            DataTable dt;
            beTrabajador oBE = new beTrabajador();
            if (txtIDReporteGuardia.Text != "")
            {
                oBE.IDReporteGuardia = Convert.ToInt64(Convert.ToString(txtIDReporteGuardia.Text));

                dt = blTrabajador.Obtener(oBE);

                Session["DATA"] = dt;
                gvEmpleado.DataSource = dt;
                gvEmpleado.DataBind();
            }

        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessageInAjax(upl);
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }

    protected void cmdNuevo_Click(object sender, EventArgs e)
    {
        cmdLimpiar_Click(null, null );
        txtIDReporteGuardia.Enabled = false;
        txtFlag.Text = "0";
        txtIDReporteGuardia.Text = "0";
        cmdAgregarActividad.Enabled = false;
        cmdAgregarMaterial.Enabled = false;
        cmdAgregarRepuestos.Enabled = false;
        cmdNuevo.Enabled = false ;
        cmdConsultar.Enabled = false;
        cmdAnular.Enabled = false;
        cmdCerrar.Enabled = false;

    }
    protected void cmdLimpiar_Click(object sender, EventArgs e)
    {
        txtFlag.Text = "0";
        txtIDReporteGuardia.Enabled = true;
        txtCantidadCliente.Text = "";
        txtCantidadInterna.Text = "";
        txtCantidadRepuestos.Text = "";
        txtDesde.Text = "";
        txtDiametro.Text = "";
        txtFecha.Text = "";
        txtHasta.Text = "";
        txtHorasCliente.Text = "";
        txtHorasInterna.Text = "";
        txtIDReporteGuardia.Text = Convert.ToString("999999");
        txtObservaciones.Text = "";
        txtSistema.Text = "";
        txtTurno.Text = "";
        CargarActividades();
        CargarGrillaActividades();
        CargarGrillaMateriales();
        CargarGrillaRepuestos();
        CargarMateriales();
        CargarPozos();
        CargarRepuestos();
        txtIDReporteGuardia.Text = Convert.ToString("");
        cmdAgregarActividad.Enabled = true;
        cmdAgregarMaterial.Enabled = true;
        cmdAgregarRepuestos.Enabled = true;
        cmdNuevo.Enabled = true;
        cmdLimpiar.Enabled = true;
        cmdGrabar.Enabled = true;
        cmdAnular.Enabled = true;
        cmdCerrar.Enabled = true;
        txtIDReporteGuardia.Enabled = true;
    }
    protected void cmdGrabar_Click(object sender, EventArgs e)
    {
        try
        {
            int   intFlag = Convert.ToInt32(txtFlag.Text);
            beReporteGuardia oBE = new beReporteGuardia();
            oBE.IDReporteGuardia = Convert.ToInt64(txtIDReporteGuardia.Text) ;
            oBE.IDPozo = Convert.ToInt64(DDLPozo.SelectedValue);
            oBE.Fecha = Convert.ToDateTime(txtFecha.Text);
            oBE.Turno = Convert.ToInt32(txtTurno.Text);
            oBE.Diametro = txtDiametro.Text;
            oBE.Sistema = txtSistema.Text;
            oBE.Desde = Convert.ToInt32( txtDesde.Text);
            oBE.Hasta = Convert.ToInt32 ( txtHasta.Text) ;    
            oBE.Observaciones = txtObservaciones.Text;
            if (intFlag == 0 )
            {
                Int32  dt = blReporteGuardia.Registrar(oBE);
                txtIDReporteGuardia.Text = Convert.ToString ( oBE.IDReporteGuardia );
                txtFlag.Text  = "1";
                    
                

            }
            else
            {
                int i = blReporteGuardia.Modificar(oBE);

            } 
            cmdAgregarActividad.Enabled = true;
            cmdAgregarMaterial.Enabled = true;
            cmdAgregarRepuestos.Enabled = true;
            cmdNuevo.Enabled = true;
            cmdLimpiar.Enabled = true;
            cmdGrabar.Enabled = true;
            cmdConsultar.Enabled = true;
            cmdAnular.Enabled = true;
            cmdCerrar.Enabled = true;
            txtIDReporteGuardia.Enabled = true;

 
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }
    protected void cmdConsultar_Click(object sender, EventArgs e)
    {
        try
        {
            beReporteGuardia oBE = new beReporteGuardia();
            if (txtIDReporteGuardia.Text != "")
            {
                oBE.IDReporteGuardia = Convert.ToInt64(Convert.ToString(txtIDReporteGuardia.Text));

                DataTable dt = blReporteGuardia.Obtener(oBE);

                if (dt != null && dt.Rows.Count > 0)
                {
                    DataRow dr = dt.Rows[0];

                   
                    txtIDReporteGuardia.Text = dr["ID_Reporte_Guardia"].ToString();
                    txtFecha.Text = dr["Fecha"].ToString();
                    txtTurno.Text = dr["Turno"].ToString();
                    txtSistema.Text = dr["Sistema"].ToString();
                    txtDiametro.Text = dr["Diametro"].ToString();
                    txtDesde.Text = dr["De"].ToString();
                    txtHasta.Text = dr["Hasta"].ToString();
                    txtObservaciones.Text = dr["Observaciones"].ToString();
                    
                    //DDLPozo.Items.FindByValue(dr["ID_Pozo"].ToString()).Selected = true;
                    if (Convert.ToInt32(Request.QueryString["ID_Reporte_Guardia"]) > 0)
                        txtIDReporteGuardia.Enabled = false;


                    CargarGrillaActividades();
                    CargarGrillaMateriales();
                    CargarGrillaRepuestos();
                    CargarGrillaTrabajadores();
                    txtFlag.Text = "1";
                }
            }
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessageInAjax(upl);
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }
    protected void cmdAnular_Click(object sender, EventArgs e)
    {
        try
        {
            bool b = Convert.ToBoolean(txtFlag.Text);
 
        }
        catch (ManagerBusinessException)
        {
            ShowErrorMessageInAjax(upl);
        }
        catch (Exception ex)
        {
            Publish(ex, String.Empty);
            ShowErrorMessageInAjax(upl);
        }
    }
    protected void cmdCerrar_Click(object sender, EventArgs e)
    {

    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {

    }
    protected void cmdAgregarActividad_Click(object sender, EventArgs e)
    {
        if (txtIDReporteGuardia.Text != "")
        {
            beDetalleActividad oBE = new beDetalleActividad();
            oBE.IDReporteGuardia = Convert.ToInt64( txtIDReporteGuardia.Text  );
            oBE.IDActividad = Convert.ToInt64(DDLActividad.SelectedValue);
            oBE.HorasInternas = Convert.ToInt64(txtHorasInterna.Text );
            oBE.HorasCliente = Convert.ToInt64(txtHorasCliente.Text );
            Int32 i = blDetalleActividad.Registrar(oBE);
            CargarGrillaActividades(); 
        }     
    }


    protected void cmdAgregarMaterial_Click(object sender, EventArgs e)
    {
        if (txtIDReporteGuardia.Text != "")
        {
            beDetalleMaterial oBE = new beDetalleMaterial();
            oBE.IDReporteGuardia = Convert.ToInt64(txtIDReporteGuardia.Text);
            oBE.IDItem  = Convert.ToInt64(DDLMateriales.SelectedValue);
            oBE.CantidadInterna = Convert.ToInt64(txtCantidadInterna.Text);
            oBE.CantidadCliente  = Convert.ToInt64(txtCantidadCliente.Text);
            Int32 i = blDetalleMateriales.Registrar(oBE);
            CargarGrillaMateriales();
        }
    }
    protected void cmdAgregarRepuestos_Click(object sender, EventArgs e)
    {
        if (txtIDReporteGuardia.Text != "")
        {
            beDetalleRepuestos  oBE = new beDetalleRepuestos();
            oBE.IDReporteGuardia = Convert.ToInt64(txtIDReporteGuardia.Text);
            oBE.IDItem = Convert.ToInt64(DDLRepuestos.SelectedValue);
            oBE.Cantidad = Convert.ToInt64(txtCantidadRepuestos.Text);
            Int32 i = blDetalleRepuesto.Registrar(oBE);
            CargarGrillaRepuestos();
        }
    }
    private void EliminarActividad(String k)
    {
        beDetalleActividad oBE = new beDetalleActividad();
        oBE.IDDetalleActividad = Convert.ToInt64(k);
        Int32 i = blDetalleActividad.Eliminar(oBE);
        CargarGrillaActividades(); 
    }

    private void EliminarMaterial(String k)
    {
        beDetalleMaterial oBE = new beDetalleMaterial();
        oBE.IDDetalleMateriales   = Convert.ToInt64(k);
        Int32 i = blDetalleMateriales.Eliminar(oBE);
        CargarGrillaMateriales();
    }
    private void EliminarRepuesto(String k)
    {
        beDetalleRepuestos oBE = new beDetalleRepuestos();
        oBE.IDDetalleRepuestos = Convert.ToInt64(k);
        Int32 i = blDetalleRepuesto.Eliminar(oBE);
        CargarGrillaRepuestos();
    }
    private void EliminarTrabajador(String k)
    {
        beTrabajador oBE = new beTrabajador();
        oBE.IDEmpleado = Convert.ToInt64(k);
        oBE.IDReporteGuardia = Convert.ToInt64(txtIDReporteGuardia.Text);
        Int32 i = blTrabajador.Eliminar(oBE);
        CargarGrillaTrabajadores();
    }

    protected void gvActividad_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        GridViewRow row = gvActividad.Rows[e.RowIndex];
        String strKey = ((Label)row.FindControl("lblID")).Text;

        EliminarActividad(strKey);
    }

    protected void gvMateriales_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        GridViewRow row = gvMateriales.Rows[e.RowIndex];
        String strKey = ((Label)row.FindControl("lblID0")).Text;

        EliminarMaterial(strKey);
    }

    protected void gvRepuestos_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        GridViewRow row = gvRepuestos.Rows[e.RowIndex];
        String strKey = ((Label)row.FindControl("lblID1")).Text;

        EliminarRepuesto(strKey);
    }
     protected void gvEmpleado_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        GridViewRow row = gvEmpleado.Rows[e.RowIndex];
        String strKey = ((Label)row.FindControl("lblID2")).Text;

        EliminarTrabajador(strKey);
    }
    #endregion
     protected void cmdAgregarEmpleado_Click(object sender, EventArgs e)
     {
         if (txtIDReporteGuardia.Text != "")
         {
             beTrabajador oBE = new beTrabajador();
             oBE.IDReporteGuardia = Convert.ToInt64(txtIDReporteGuardia.Text);
             oBE.IDEmpleado  = Convert.ToInt64(DDLEmpleados.SelectedValue);
             Int32 i =blTrabajador.Registrar(oBE)  ;
             CargarGrillaTrabajadores();
         }
     }
}
